home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO020.dsk / QREF.bas < prev    next >
BASIC Source File  |  2012-02-16  |  34KB  |  381 lines

  1. 1 P0 =  PEEK(1010):P1 =  PEEK(1011):P2 =  PEEK(1012): POKE 1012,0
  2. 2  ONERR  GOTO 376
  3. 3 D$ =  CHR$(4):R$ =  CHR$(13):I$ =  CHR$(34)
  4. 4  GOTO 18
  5. 5  REM  STALL
  6. 6  VTAB 24: INVERSE : PRINT " PRESS 'RETURN' WHEN READY TO CONTINUE "; CHR$(7);
  7. 7  IF  PEEK( -16384) <127  THEN 7
  8. 8  GET Z9$: IF Z9$ < >R$  THEN 7
  9. 9  NORMAL : HOME : RETURN 
  10. 10  REM 
  11. 11 Z8$ = "":CH =  PEEK(36):CV =  PEEK(37)
  12. 12  GET Z7$
  13. 13  IF Z7$ =  CHR$(13)  AND Z8$ < >""  THEN  RETURN 
  14. 14  IF Z7$ =  CHR$(13)  THEN 12
  15. 15  PRINT Z7$;
  16. 16  IF Z7$ > = "0"  AND Z7$ < = "9"  THEN  LET Z8$ = Z8$ +Z7$: GOTO 12
  17. 17  PRINT "  ";: FLASH : PRINT "RE-ENTER !!";: FOR I = 1 TO 2000: NEXT I: NORMAL : POKE 36,CH: POKE 37,CV: CALL  -958: GOTO 11
  18. 18  REM 
  19. 19  TEXT : HOME : NORMAL : PRINT  TAB( 5);
  20. 20  INVERSE : PRINT "QUICK REFERENCE GUIDE TO BASIC": NORMAL : POKE 34,1: HOME 
  21. 21  DIM A$(66)
  22. 22  FOR J = 1 TO 66: READ A$(J): NEXT J
  23. 23  DATA ABS(X),ASC(A$),ATN(X),CALL(X),CHR$(X),CLEAR,CONT,COS(X),CTRL/C,CTRL/X,"DATA",DEF FNA(X),"DEL X,Y","DIM A(X)",END,EXP(X),FLASH,FOR-NEXT,GET A$,GOSUB-RET
  24. 24  DATA GOTO,HOME,HTAB X,IF-THEN,INPUT,INT(X),INVERSE,LEFT$,LEN(A$),LET,LIST,LOAD,LOG(X),MID$,NEW,NEXT,NORMAL,ON-GOSUB,ON-GOTO,ONERRGOTO
  25. 25  DATA PEEK(X),"POKE X,Y",POS(0),PRINT,READ,REM,RESTORE,RESUME,RETURN,RIGHT$,RND(1),RUN,SAVE,SGN(X),SIN(X),SPC(X),SPEED=X,SQR(X),STOP,STR$(A),TAB(X),TAN(X),TEXT,TRACE,VAL(A$),VTAB(X)
  26. 26  HOME : PRINT  CHR$(7);
  27. 27  FOR J = 1 TO 9
  28. 28  PRINT  TAB( 2);J;".";A$(J);
  29. 29  PRINT  TAB( 15);J +22;".";A$(J +22);
  30. 30  PRINT  TAB( 29);J +44;".";A$(J +44);
  31. 31  IF  LEN(A$(J +44)) <9  THEN  PRINT 
  32. 32  NEXT J
  33. 33  FOR J = 10 TO 22
  34. 34  PRINT J;".";A$(J);
  35. 35  PRINT  TAB( 15);J +22;".";A$(J +22);
  36. 36  PRINT  TAB( 29);J +44;".";A$(J +44);
  37. 37  IF  LEN(A$(J +44)) <9  THEN  PRINT 
  38. 38  NEXT J
  39. 39  INVERSE : PRINT "ENTER NO.(0 TO FINISH):"; CHR$(7); CHR$(7);: NORMAL : PRINT "  ";: GOSUB 10: IF Z8$ = "0"  THEN 377
  40. 40 N =  VAL(Z8$): IF N <1  OR N >66  THEN  HTAB 1: CALL  -958: GOTO 39
  41. 41  LET T =  INT(N/10):U = N -T *10
  42. 42  IF N = 20  OR N = 49  THEN  HOME : PRINT : INVERSE : PRINT "GOSUB-RETURN": NORMAL : PRINT : GOTO 141
  43. 43  IF N = 18  OR N = 36  THEN  HOME : PRINT : INVERSE : PRINT "FOR-NEXT": NORMAL : GOTO 127
  44. 44  IF N = 17  THEN  HOME : VTAB 6: FLASH : PRINT A$(N): NORMAL : PRINT : PRINT : GOTO 123
  45. 45  HOME : VTAB 3: INVERSE : PRINT A$(N): NORMAL : PRINT 
  46. 46  ON T +1 GOTO 47,79,140,192,250,306,344
  47. 47  ON U GOTO 48,51,55,58,62,66,69,74,77
  48. 48  PRINT "RETURNS THE ABSOLUTE VALUE OF THE       ARGUMENT (X), I.E. THE SIGN IS IGNORED."
  49. 49  PRINT : PRINT "E.G.": PRINT : PRINT "PRINT ABS(6) YIELDS 6, AND": PRINT : PRINT "PRINT ABS(-6)=6"
  50. 50  GOSUB 5: GOTO 26
  51. 51  PRINT "RETURNS THE DECIMAL ";: INVERSE : PRINT "ASCII";: NORMAL : PRINT " CODE FOR THE  FIRST CHARACTER IN THE ARGUMENT A$."
  52. 52  PRINT : PRINT "E.G.": PRINT : PRINT "IF A$=" CHR$(34)"A" CHR$(34)" THEN 65 IS RETURNED.": PRINT : PRINT "IF A$=" CHR$(34)"BCD" CHR$(34)" THEN 66 IS RETURNED.": PRINT : PRINT "IF A$=" CHR$(34)"3" CHR$(34)" THEN 51 IS RETURNED."
  53. 53  PRINT : PRINT : PRINT "NOTE:- SEE ";: INVERSE : PRINT "CHR$(A)";: NORMAL : PRINT " FOR REVERSE. USE": INVERSE : PRINT "MID$()";: NORMAL : PRINT " TO OPERATE ON ANY CHARACTER OTHERTHAN THE FIRST IN A STRING."
  54. 54  GOSUB 5: GOTO 26
  55. 55  PRINT "RETURNS THE ARCTANGENT OF THE ARGUMENT  (RADIANS)."
  56. 56  PRINT : PRINT "E.G.": PRINT : PRINT "?ATN(20) RETURNS:": PRINT : PRINT  ATN(20)
  57. 57  GOSUB 5: GOTO 26
  58. 58  PRINT "CAUSES THE EXECUTION OF A MACHINE       LANGUAGE SUBROUTINE AT THE MEMORY       LOCATION WHOSE DECIMAL ADDRESS IS       SPECIFIED."
  59. 59  PRINT : PRINT "E.G.": PRINT : PRINT "CALL-936 CLEARS SCREEN (LIKE 'HOME' AND 'ESC/@')."
  60. 60  PRINT : PRINT "USER-WRITTEN SUBROUTINES MAY ALSO BE    CALLED USING THE COMMAND ";: INVERSE : PRINT "CALL(X)";: NORMAL : PRINT ", WHERE THE ARGUMENT 'X' IS THE DECIMAL ADDRESS OF THE SUBROUTINE."
  61. 61  GOSUB 5: GOTO 26
  62. 62  PRINT "RETURNS THE CHARACTER THE ";: INVERSE : PRINT "ASCII";: NORMAL : PRINT " CODE OF WHICH IS SPECIFIED AS THE ARGUMENT X    (WHICH MUST BE IN RANGE 0-255)."
  63. 63  PRINT : PRINT "E.G.": PRINT : PRINT "PRINT CHR$(65) PRODUCES THE LETTER 'A'. ": PRINT "PRINT CHR$(66) PRODUCES THE LETTER 'B'. ": PRINT "PRINT CHR$(7) BLEEPS THE BELL."
  64. 64  PRINT : PRINT : PRINT "NOTE:- SEE ";: INVERSE : PRINT "ASC(A$)";: NORMAL : PRINT " FOR REVERSE."
  65. 65  GOSUB 5: GOTO 26
  66. 66  PRINT "SETS ALL NUMERIC VARIABLES TO ZERO AND  ALL STRINGS TO NULL STRINGS (APPLESOFT)."
  67. 67  PRINT : PRINT "E.G.": PRINT : PRINT "10 CLEAR"
  68. 68  GOSUB 5: GOTO 26
  69. 69  PRINT "IF PROGRAM EXECUTION HAS BEEN HALTED BY"
  70. 70  INVERSE : PRINT "STOP, END, CTRL/C OR RESET";: NORMAL : PRINT " (APPLESOFT)"
  71. 71  PRINT "THIS COMMAND WILL CONTINUE AT THE NEXT  INSTRUCTION. IT WILL NOT WORK AFTER A   CHANGE IN PROGRAM STATEMENT(S), OR IF ANERROR HAS OCCURRED."
  72. 72  PRINT : PRINT : PRINT "IT MAY NOT WORK PROPERLY AFTER ";: INVERSE : PRINT "RESET";: NORMAL : PRINT " AS SOME POINTERS AND STACKS ARE CLEARED."
  73. 73  GOSUB 5: GOTO 26
  74. 74  PRINT "RETURNS THE COSINE OF THE ARGUMENT (X), WHICH MUST BE IN RADIANS."
  75. 75  PRINT : PRINT "E.G.": PRINT : PRINT "PRINT COS(20) PRODUCES:": PRINT : PRINT  COS(20)
  76. 76  GOSUB 5: GOTO 26
  77. 77  PRINT "MAY BE USED TO INTERRUPT A PROGRAM RUN  OR LISTING. TO WORK WITH ";: INVERSE : PRINT "INPUT";: NORMAL : PRINT " IT MUST  BE THE FIRST CHARACTER ENTERED, AND THE ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " KEY MUST THEN BE PRESSED."
  78. 78  GOSUB 5: GOTO 26
  79. 79  ON U +1 GOTO 80,87,95,104,108,116,119,123,127,134
  80. 80  PRINT "TELLS THE APPLE TO IGNORE THE LINE      CURRENTLY BEING TYPED, WITHOUT DELETING ANY PREVIOUS LINE OF THE SAME NUMBER.   A BACKSLASH ";: INVERSE : PRINT  CHR$(92);: NORMAL : PRINT " IS DISPLAYED AT THE END OFTHE LINE BEING IGNORED."
  81. 81  PRINT : PRINT "E.G.": PRINT 
  82. 82  PRINT "10 REM ABC"
  83. 83  PRINT "10 REM DEF" CHR$(92)
  84. 84  PRINT "LIST 10"
  85. 85  PRINT "10 REM ABC"
  86. 86  GOSUB 5: GOTO 26
  87. 87  VTAB 4: PRINT "NUMERIC AND/OR ALPHANUMERIC DATA ITEMS, EACH SEPARATED BY COMMAS (NONE AT END OFLINE), ARE LISTED IN THIS STATEMENT,    AND ARE THEN AVAILABLE FOR USE, IN      SEQUENCE, BY ";: INVERSE : PRINT "READ";: NORMAL : PRINT " STATEMENTS."
  88. 88  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL 
  89. 89  PRINT "10 READ A,B2,C$,D3$,E6$"
  90. 90  PRINT "20 DATA 234,678,JOHN," CHR$(34)"BROWN,JOHN" CHR$(34)"," CHR$(34)"DATA" CHR$(34)
  91. 91  PRINT "NOTES:- THERE SHOULD BE A DATA ITEM OF  THE CORRECT TYPE TO MATCH EVERY VARIABLEBEING READ, AND THEY SHOULD BE IN THE   CORRECT ORDER. ALSO STRING DATA ITEMS   WHICH INCLUDE COMMAS, COLONS OR KEYWORDSSHOULD BE IN DOUBLE QUOTES.";
  92. 92  PRINT " DATA LINES  MAY BE ANYWHERE IN THE PROGRAM, BUT DATAITEMS ARE TAKEN IN ORDER OF APPEARANCE."
  93. 93  PRINT : PRINT "(SEE ALSO ";: INVERSE : PRINT "RESTORE";: NORMAL : PRINT ")."
  94. 94  GOSUB 5: GOTO 26
  95. 95  PRINT "THIS ENABLES THE PROGRAMMER TO DEFINE A FUNCTION AS BEING EQUAL TO A CHOSEN     EXPRESSION. IN LATER USE THE ARGUMENT OF";: INVERSE : PRINT "FNA";: NORMAL : PRINT " WILL BE SUBSTITUTED FOR X IN THE    DEFINED EXPRESSION, E.G."
  96. 96  PRINT 
  97. 97  PRINT "10 DEF FNA(X)=5*X^3 + 4*X^2": PRINT "20 PRINT FNA(2)": PRINT : PRINT "WILL PRODUCE 56"
  98. 98  PRINT : POKE 34, PEEK(37): HOME 
  99. 99  PRINT "THE FUNCTION MUST FIRST BE NAMED (USING VALID REAL VARIABLE NAME), AND DEFINED  (AS IN LINE 10). ONCE DEFINED IT MAY BE USED BY CALLING IT, THIS TIME WITH THE  ARGUMENT (X) HAVING A STATED/COMPUTED   VALUE (AS IN LINE 20)."
  100. 100  GOSUB 5
  101. 101  PRINT "WHEREVER (IF AT ALL) THE ARGUMENT (X)   APPEARS IN THE EXPRESSION ON THE RIGHT  (IN LINE 10) IT WILL NOW BE GIVEN THE   VALUE THE ARGUMENT HAS IN THE LINE IN   WHICH THE FUNCTION IS CALLED (2, IN LINE20).";
  102. 102  PRINT "THE COMPUTED VALUE OF THE FUNCTION  IS NOW USED IN THE CALLING LINE (20)."
  103. 103  GOSUB 5: POKE 34,1: GOTO 26
  104. 104  PRINT "THIS REMOVES ALL LINES FROM LINE X TO   LINE Y (INCLUSIVE) FROM THE PROGRAM."
  105. 105  PRINT : PRINT "E.G.": PRINT : PRINT "DEL 50,80": PRINT : PRINT "DELETES ALL LINES THAT EXIST (IF ANY)   BETWEEN LINE 50 AND LINE 80, INCLUDING  LINES 50 AND 80 THEMSELVES.": PRINT : PRINT 
  106. 106  PRINT "NOTES:- A DASH WILL NOT DO AS SEPARATOR;A COMMA IS NECESSARY. THIS COMMAND MAY  BE USED WITHIN A PROGRAM (WITH A LINE   NUMBER), BUT PROGRAM EXECUTION STOPS,   AND AS THE PROGRAM HAS BEEN CHANGED THE COMMAND 'CONT' WILL NOT WORK."
  107. 107  GOSUB 5: GOTO 26
  108. 108  PRINT "RESERVES MEMORY SPACE FOR ARRAYS WHERE  THE ARGUMENT REPRESENTS THE MAXIMUM     SUBSCRIPT FOR THE ARRAY(S), E.G.": PRINT 
  109. 109  PRINT "10 DIM A(15),B2(6),C$(20),D3$(8,30)": PRINT 
  110. 110  POKE 34, PEEK(37): HOME 
  111. 111  PRINT "ALL ARRAYS SHOULD BE DIMENSIONED BEFORE USE (DEFAULT HOWEVER IS 10). THEY MAY BEDIMENSIONED ONCE ONLY IN A PROGRAM.": PRINT 
  112. 112  PRINT "ARRAYS MAY BE DIMENSIONED ON SEPARATE   LINES, OR ON ONE LINE, AS ABOVE, USING  COMMAS AS SEPARATORS.": GOSUB 5
  113. 113  PRINT "THE ABOVE EXAMPLE SETS ASIDE MEMORY     SPACE FOR 15, 6, AND 30 ELEMENTS IN THE ARRAYS 'A', 'B2', AND 'C$'. SPACE FOR   240 ELEMENTS IS SET ASIDE FOR THE ARRAY (MATRIX) 'D3$', I.E. 8*30.": PRINT 
  114. 114  PRINT "NOTES:- SOME SYSTEMS (INCLUDING APPLE)  ALLOW ZERO SUBSCRIPTS. THUS A(0) IS     ADDITIONALLY ALLOWED ABOVE. MULTI-      DIMENSIONAL ARRAYS (INCLUDING STRINGS)  ARE ALSO ALLOWED, AS IN 'D3$' ABOVE."
  115. 115  GOSUB 5: POKE 34,1: GOTO 26
  116. 116  PRINT "CAUSES A PROGRAM TO CEASE EXECUTION, ANDRETURNS CONTROL TO THE USER. NO MESSAGE IS PRINTED."
  117. 117  PRINT : PRINT "E.G.": PRINT : PRINT "1000 END": PRINT : PRINT "STOPS THE PROGRAM AT LINE 1000.": PRINT : PRINT "NOTE:- NO FULL STOP AFTER 'END'."
  118. 118  GOSUB 5: GOTO 26
  119. 119  PRINT "RETURNS THE VALUE OF 'E' RAISED TO THE  POWER INDICATED BY THE ARGUMENT.        (NATURAL ANTI-LOG OF X)."
  120. 120  PRINT : PRINT "E.G.": PRINT : PRINT "PRINT EXP(0.5)": PRINT : PRINT  EXP(0.5): PRINT : PRINT 
  121. 121  PRINT "NOTE:- SEE 'LOG(X)' FOR REVERSE."
  122. 122  GOSUB 5: GOTO 26
  123. 123  PRINT "SETS VIDEO MODE TO FLASHING, I.E.       ALTERNATELY NORMAL AND INVERSE          (APPLESOFT)."
  124. 124  PRINT : PRINT 
  125. 125  PRINT "MAY BE USED WITH OR WITHOUT LINENUMBER. ALL SUBSEQUENT OUTPUT (NOT INPUT FROM   KEYBOARD) WILL BE IN FLASHING MODE UNTILA 'NORMAL' STATEMENT OR COMMAND. (NOTE  THAT 'INVERSE' WOULD ALSO STOP FLASHING BUT OUTPUT WOULD BE IN INVERSE)."
  126. 126  GOSUB 5: GOTO 26
  127. 127  VTAB 3: HTAB 10: PRINT ": EXAMPLE": PRINT 
  128. 128  INVERSE : PRINT "FOR";: NORMAL : PRINT " X = A ";: INVERSE : PRINT "TO";: NORMAL : PRINT " B ";: INVERSE : PRINT  CHR$(91);"STEP C ]": NORMAL 
  129. 129  PRINT "STATEMENT(S) TO BE REPEATED": INVERSE : PRINT "NEXT";: NORMAL : PRINT " X": PRINT 
  130. 130  PRINT "THE STATEMENTS BETWEEN THE ";: INVERSE : PRINT "FOR";: NORMAL : PRINT " AND THE": INVERSE : PRINT "NEXT";: NORMAL : PRINT " ARE EXECUTED FOR ALL THE VALUES OF 'X' BETWEEN 'A' AND 'B', IN STEPS OF 'C'."
  131. 131  PRINT "THE SQUARE BRACKETS MEAN OPTIONALITY. IFTHE STEP OPTION IS OMITTED A STEP SIZE  OF ONE IS ASSUMED. THE STEP SIZE MAY BE NEGATIVE OR FRACTIONAL IF DESIRED.": PRINT 
  132. 132  PRINT "CHECKING OF THE COUNTER VARIABLE IS DONEAT THE END OF THE LOOP, AND SO THE      INSTRUCTIONS WITHIN THE LOOP ARE ALWAYS EXECUTED AT LEAST ONCE (APPLESOFT)."
  133. 133  GOSUB 5: GOTO 26
  134. 134  PRINT "FETCHES A SINGLE CHARACTER FROM THE     KEYBOARD, WITHOUT SHOWING IT ON THE     SCREEN, AND WITHOUT REQUIRING THAT THE": INVERSE : PRINT "RETURN";: NORMAL : PRINT " KEY BE PRESSED - EXAMPLES:"
  135. 135  PRINT 
  136. 136  PRINT "10 GET A": PRINT "20 GET A$": PRINT 
  137. 137  PRINT "A SINGLE DIGIT MAY BE SOUGHT AT THE     KEYBOARD USING A NUMERIC REAL VARIABLE. ANY SINGLE CHARACTER (INCLUDING DIGITS) MAY BE SOUGHT USING A STRING VARIABLE.": PRINT 
  138. 138  PRINT "IN BOTH CASES A SEPARATE 'PRINT'        STATEMENT IS REQUIRED IF IT IS DESIRED  TO OUTPUT THE CHARACTER. IN NEITHER CASEIS IT REQUIRED TO PRESS THE 'RETURN'    BUTTON. A LINENUMBER HOWEVER IS ALWAYS  REQUIRED WITH 'GET'."
  139. 139  GOSUB 5: GOTO 26
  140. 140  ON U +1 GOTO 141,147,152,155,159,168,176,182,185,189
  141. 141  VTAB 3: HTAB 15: PRINT ": EXAMPLE": PRINT 
  142. 142  PRINT "100 REM SUBROUTINE BEGINS": INVERSE : PRINT "BODY OF SUBROUTINE": NORMAL : PRINT "150 RETURN:REM END OF SUBROUTINE => BACKTO MAIN PART OF PROGRAM": PRINT : PRINT 
  143. 143  PRINT "600 GOSUB 100:REM TO SUBROUTINE @ L.100 610 REM RETURN TO HERE": PRINT : PRINT : PRINT "800 GOSUB 100:REM TO SUBROUTINE @ L.100 810 REM RETURN TO HERE": PRINT 
  144. 144  PRINT "CAUSES THE PROGRAM TO BRANCH TO THE     INDICATED LINE. WHEN A ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " STATEMENT IS EXECUTED THE PROGRAM BRANCHES TO THE STATEMENT IMMEDIATELY FOLLOWING THE MOSTRECENTLY EXECUTED ";: INVERSE : PRINT "GOSUB";: NORMAL 
  145. 145  PRINT "."
  146. 146  GOSUB 5: GOTO 26
  147. 147  PRINT "CAUSES THE PROGRAM TO BRANCH (JUMP)     UNCONDITIONALLY, FORWARDS OR BACKWARDS  TO THE INDICATED LINE."
  148. 148  PRINT "E.G.": PRINT 
  149. 149  PRINT "100 GOTO 300": PRINT "200 GOTO 50": PRINT : PRINT 
  150. 150  PRINT "MAY ALSO BE USED IN DIRECT MODE, I.E.   WITHOUT LINENUMBER. THIS IS SOMETIMES   USEFUL AS GOTO DOES NOT CLEAR VARIABLES,WHEREAS 'RUN' WOULD RESET ALL VARIABLES TO ZERO OR THE NULL STRING."
  151. 151  GOSUB 5: GOTO 26
  152. 152  PRINT "MOVES THE CURSOR TO THE UPPER LEFT      SCREEN POSITION WITHIN THE TEXT WINDOW, AND CLEARS ALL TEXT IN THE WINDOW.      (APPLESOFT).": PRINT 
  153. 153  PRINT "NOTE:- MAY BE USED WITH OR WITHOUT LINE-NUMBER. THE CURRENT SCREEN (USUALLY THE FULL SCREEN) IS CLEARED. MEMORY IS NOT  CLEARED. THE SAME EFFECT AS 'HOME' MAY  BE ACHIEVED BY 'CALL-936' OR 'ESC/@."
  154. 154  GOSUB 5: GOTO 26
  155. 155  PRINT "MOVES THE CURSOR LEFT OR RIGHT TO THE   SPECIFIED COLUMN (1-40) ON THE SCREEN.  (APPLESOFT).
  156. 156  PRINT : PRINT "MAY BE USED WITH OR WITHOUT LINE NUMBER.NOTE THAT THE USUAL 'TAB' FUNCTION MUST BE USED WITH THE 'PRINT' STATEMENT, AND THE CURSOR MAY ONLY MOVE FORWARDS."
  157. 157  PRINT "'HTAB' ENABLES THE CURSOR TO MOVE EITHERFORWARDS OR BACKWARDS, AND IS USED AS A STATEMENT IN ITS OWN RIGHT."
  158. 158  GOSUB 5: GOTO 26
  159. 159  VTAB 3: HTAB 10: PRINT "SYNTAX IS:": PRINT 
  160. 160  INVERSE : PRINT "IF";: NORMAL : PRINT "<CONDITION>";: INVERSE : PRINT "THEN";: NORMAL : PRINT "<LINENUMBER/STATEMENT>"
  161. 161  PRINT 
  162. 162  PRINT "IF THE CONDITION IS TRUE THEN THE       INSTRUCTION(S) FOLLOWING ";: INVERSE : PRINT "THEN";: NORMAL : PRINT " IN THE    SAME LINE WILL BE EXECUTED, OTHERWISE   NEXT STATEMENT LINE WILL BE EXECUTED."
  163. 163  PRINT : INVERSE : PRINT "EXAMPLES": NORMAL 
  164. 164  PRINT "100 IF A=B THEN 150": PRINT "OTHER STATEMENTS (EXECUTED IF A<>B)": PRINT "150 PRINT " CHR$(34)"NUMBERS EQUAL" CHR$(34): INVERSE : PRINT : PRINT "OR": NORMAL 
  165. 165  PRINT "100 IF A=B THEN PRINT " CHR$(34)"NUMBERS EQUAL" CHR$(34): PRINT 
  166. 166  PRINT "NOTES:- A JUMP MAY BE MADE FORWARDS OR  BACKWARDS IN THE PROGRAM. ALL SYSTEMS DONOT ALLOW A STATEMENT FOLLOWING THE     'THEN'."
  167. 167  GOSUB 5: GOTO 26
  168. 168  VTAB 3: HTAB 10: PRINT "SYNTAX IS:": PRINT 
  169. 169  INVERSE : PRINT "INPUT";: NORMAL : PRINT  CHR$(91); CHR$(34);"MESSAGE"; CHR$(34);";";"]";"<VARIABLE>"; CHR$(91);", VARIABLE,  ETC ]"
  170. 170  PRINT : PRINT "WAITS FOR USER TO ENTER DATA WHILE THE  PROGRAM IS RUNNING, IN RESPONSE TO      EITHER A QUESTION MARK OR AN OPTIONAL   PROMPT MESSAGE."
  171. 171  PRINT 
  172. 172  INVERSE : PRINT "EXAMPLES": NORMAL 
  173. 173  PRINT "10 INPUT A : REM '?' OUTPUT": PRINT "20 INPUT " CHR$(34)"ENTER NUMBER" CHR$(34)";A": PRINT 
  174. 174  PRINT "LINE 10 IS BAD PROGRAMMING, UNLESS      PRECEDED BY A SEPARATE 'PRINT' STATEMENTREQUESTING EXPLICIT DATA. MORE THAN ONE ITEM MAY BE REQUESTED IN THE SAME       'INPUT' STATEMENT BY USING COMMAS AS    SEPARATORS BETWEEN VARIABLES."
  175. 175  GOSUB 5: GOTO 26
  176. 176  PRINT "RETURNS THE LARGEST INTEGER LESS THAN OREQUAL TO THE GIVEN ARGUMENT."
  177. 177  PRINT : PRINT "E.G.": PRINT 
  178. 178  PRINT "PRINT INT(6.4) - PRODUCES 6": PRINT : PRINT "PRINT INT(6.9) - PRODUCES 6": PRINT 
  179. 179  FLASH : PRINT "WARNING": NORMAL : PRINT : PRINT "PRINT INT(-6.4) - PRODUCES -7"
  180. 180  PRINT : PRINT "NOTE:- THIS FUNCTION ON ITS OWN ROUNDS  DOWN ANY NUMBER TO THE WHOLE NUMBER LESSTHAN (OR EQUAL TO) IN VALUE TO THE      NUMBER IN QUESTION."
  181. 181  GOSUB 5: GOTO 26
  182. 182  PRINT "SETS THE VIDEO MODE SO THAT THE OUTPUT  PRINTS AS BLACK LETTERS ON WHITE ON THE SCREEN. USE ";: INVERSE : PRINT "NORMAL";: NORMAL : PRINT " TO RETURN TO WHITE ONBLACK."
  183. 183  PRINT : PRINT "THIS COMMAND MAY BE USED EITHER WITH OR WITHOUT A LINENUMBER. ALL OUTPUT (NOT   INPUT FROM KEYBOARD) WILL BE IN THIS    MODE UNTIL EITHER A 'NORMAL' COMMAND OR A 'FLASH' COMMAND IS EXECUTED."
  184. 184  GOSUB 5: GOTO 26
  185. 185  INVERSE : PRINT "LEFT$(A$,X)";: NORMAL : PRINT " RETURNS THE 'X' LEFTMOST    CHARACTERS IN THE STRING A$."
  186. 186  PRINT : PRINT "E.G.": PRINT 
  187. 187  PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", AND X=2, THEN THE LETTERS 'MA' WILL BE OUTPUT."
  188. 188  GOSUB 5: GOTO 26
  189. 189  PRINT "RETURNS THE NUMBER OF CHARACTERS IN THE STRING A$."
  190. 190  PRINT : PRINT "E.G.": PRINT : PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", THEN THE OUTPUT WILL BE 4."
  191. 191  GOSUB 5: GOTO 26
  192. 192  ON U +1 GOTO 193,202,208,215,220,226,327,231,235,243
  193. 193  VTAB 3: HTAB 8: PRINT "SYNTAX IS:": PRINT 
  194. 194  INVERSE : PRINT "LET";: NORMAL : PRINT " <VARIABLE> = <EXPRESSION>": PRINT : POKE 34, PEEK(37): HOME 
  195. 195  PRINT "THE EXPRESSION ON THE RIGHT IS FIRST    EVALUATED. THE VARIABLE NAME ON THE LEFTIS THEN ASSIGNED THE VALUE OF THE       EXPRESSION ON THE RIGHT."
  196. 196  PRINT : PRINT "THERE MAY ONLY BE A SINGLE VARIABLE (OR ARRAY ELEMENT) ON THE LEFT OF THIS      STATEMENT. THE EXPRESSION MAY BE A      SINGLE VARIABLE, CONSTANT, ANY FUNCTION OR COMBINATION OF THESE.": PRINT 
  197. 197  GOSUB 5: INVERSE : PRINT "EXAMPLES": NORMAL 
  198. 198  PRINT "10 LET A=6": PRINT "20 LET B(3)=A*B+7-INT(X)": PRINT "30 LET N$ = " CHR$(34)"JOHN" CHR$(34): PRINT "40 LET A=ASC(A$)": PRINT 
  199. 199  PRINT "SOME SYSTEMS (INCLUDING APPLE) ALLOW THEUSE OF 'LET' TO BE OPTIONAL, E.G.       10 A=6 WOULD DO INSTEAD OF LINE 10      ABOVE. HOWEVER TO USE 'LET' IS MORE     MEANINGFUL."
  200. 200  PRINT : PRINT : INVERSE : PRINT "LET";: NORMAL : PRINT " MAY BE USED WITH OR WITHOUT A": PRINT "LINENUMBER."
  201. 201  GOSUB 5: POKE 34,1: GOTO 26
  202. 202  INVERSE : PRINT "LIST";: NORMAL : PRINT " ON ITS OWN LISTS PROGRAM IN MEMORY IN FULL.": PRINT 
  203. 203  INVERSE : PRINT "LIST 100";: NORMAL : PRINT " LISTS LINE 100 ONLY.": PRINT 
  204. 204  INVERSE : PRINT "LIST 100-200";: NORMAL : PRINT " LISTS ALL LINES IN RANGE   100-200.": PRINT 
  205. 205  INVERSE : PRINT "LIST -100";: NORMAL : PRINT " LISTS ALL LINES UP TO LINE 100.": PRINT 
  206. 206  INVERSE : PRINT "LIST 100-";: NORMAL : PRINT " LISTS ALL LINES FROM LINE 100 TO THE END OF THE PROGRAM.": PRINT 
  207. 207  GOSUB 5: GOTO 26
  208. 208  INVERSE : PRINT "LOAD";: NORMAL : PRINT "<PROGRAM NAME> READS PROGRAM NAMED  INTO MEMORY FROM DISK."
  209. 209  PRINT : PRINT "N.B. NO QUOTES AROUND PROGRAM NAME ON   APPLE."
  210. 210  PRINT : PRINT : FLASH : PRINT "WARNING": NORMAL 
  211. 211  PRINT : INVERSE : PRINT "LOAD";: NORMAL : PRINT " WITHOUT A PROGRAM NAME EXPECTS A   PROGRAM FROM CASSETTE TAPE. IF THERE IS NO CASSETTE RECORDER LINKED TO APPLE THECURSOR WILL DISSAPPEAR AND YOU WILL BE  LEFT WAITING INDEFINITELY. TO RECOVER"
  212. 212  PRINT "PRESS ";: INVERSE : PRINT "RESET";: NORMAL : PRINT "."
  213. 213  PRINT : PRINT : PRINT "NOTE:- SEE ALSO ";: INVERSE : PRINT "RUN";: NORMAL : PRINT "."
  214. 214  GOSUB 5: GOTO 26
  215. 215  PRINT "RETURNS NATURAL LOGARITHM (TO THE BASE  'E') OF THE SPECIFIED ARITHMETIC        EXPRESSION."
  216. 216  PRINT : PRINT : PRINT "E.G.": PRINT 
  217. 217  PRINT "PRINT LOG(10)": PRINT : PRINT  LOG(10): PRINT : PRINT 
  218. 218  PRINT "NOTE:- SEE 'EXP(X)' FOR REVERSE."
  219. 219  GOSUB 5: GOTO 26
  220. 220  INVERSE : PRINT "MID$(A$,X,Y)";: NORMAL : PRINT " RETURNS THE 'Y' CHARACTERS IN THE STRING A$, STARTING AT THE X'TH  CHARACTER."
  221. 221  PRINT : PRINT "E.G.": PRINT : PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", IF X=2, AND IF Y=1, THEN  THE OUTPUT WILL BE THE LETTER 'A'.": PRINT 
  222. 222  PRINT 
  223. 223  INVERSE : PRINT "MID$(A$,X)";: NORMAL : PRINT " RETURNS ALL THE RIGHTMOST    CHARACTERS IN THE STRING A$, STARTING ATTHE XTH CHARACTER (I.E. WHEN THE LAST   ARGUMENT IS MISSING).";
  224. 224  PRINT " IN THE ABOVE      EXAMPLE, IF 'Y' WAS MISSING THEN THE    OUTPUT WOULD BE 'ARY'."
  225. 225  GOSUB 5: GOTO 26
  226. 226  PRINT "CLEARS MEMORY, DELETING CURRENT PROGRAM AND ALL VARIABLES."
  227. 227  PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS, BUT ";: FLASH : PRINT "BEWARE";: NORMAL : PRINT ".": PRINT : PRINT 
  228. 228  PRINT "MAKE SURE YOU ";: INVERSE : PRINT "SAVE";: NORMAL : PRINT " ANY PROGRAM IN MEMORYTHAT YOU WISH TO KEEP BEFORE YOU TYPE   ";: INVERSE : PRINT "NEW";: NORMAL : PRINT ". IF YOU HAVE THIS STATEMENT WITHIN  A PROGRAM BE SURE TO SAVE IT BEFORE YOU RUN IT."
  229. 229  PRINT : PRINT "N.B. THIS COMMAND ONLY CLEARS MEMORY, ITDOES NOT CLEAR THE SCREEN. (SEE 'HOME'  FOR THIS)."
  230. 230  GOSUB 5: GOTO 26
  231. 231  PRINT "SETS VIDEO MODE TO THE USUAL WHITE      LETTERS ON BLACK BACKGROUND FOR BOTH    INPUT AND OUTPUT."
  232. 232  PRINT : PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS. IT IS NORMALLY USED TO     RETURN FROM ";: INVERSE : PRINT "INVERSE";: NORMAL : PRINT " OR ";: FLASH : PRINT "FLASH";: NORMAL 
  233. 233  PRINT " MODES. IN  EACH CASE OUTPUT STAYS IN THE SPECIFIED MODE UNTIL CHANGED. INPUT IS ALWAYS IN  NORMAL MODE, HOWEVER."
  234. 234  GOSUB 5: GOTO 26
  235. 235  VTAB 3: HTAB 11: PRINT "SYNTAX IS:": PRINT 
  236. 236  INVERSE : PRINT "ON";: NORMAL : PRINT "<EXPRESSION>";: INVERSE : PRINT "GOSUB";: NORMAL : PRINT "100,200,300,ETC": PRINT 
  237. 237  PRINT "EXECUTES A GOSUB TO THE LINE NUMBER     INDICATED BY THE VALUE OF THE EXPRESSIONFOLLOWING ";: INVERSE : PRINT "ON";: NORMAL : PRINT "."
  238. 238  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL 
  239. 239  PRINT "50 ON X GOSUB 100,200,300,400,500": PRINT 
  240. 240  PRINT "THE ABOVE MEANS:": PRINT : PRINT "IF X=1 GOSUB 100": PRINT "IF X=2 GOSUB 200": PRINT "IF X=3 GOSUB 300, ETC.": PRINT 
  241. 241  PRINT "IN EACH CASE CONTROL WOULD RETURN TO THESTATEMENT IMMEDIATELY FOLLOWING THE": INVERSE : PRINT "ON-GOSUB";: NORMAL : PRINT "."
  242. 242  GOSUB 5: GOTO 26
  243. 243  VTAB 3: HTAB 11: PRINT "SYNTAX IS:": PRINT 
  244. 244  INVERSE : PRINT "ON";: NORMAL : PRINT "<EXPRESSION>";: INVERSE : PRINT "GOTO";: NORMAL : PRINT "100,200,300,ETC": PRINT 
  245. 245  PRINT "EXECUTES A GOTO TO THE LINE NUMBER      INDICATED BY THE VALUE OF THE EXPRESSIONFOLLOWING ";: INVERSE : PRINT "ON";: NORMAL : PRINT "."
  246. 246  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL 
  247. 247  PRINT "50 ON X GOTO 100,200,300,400,500": PRINT 
  248. 248  PRINT "THE ABOVE MEANS:": PRINT : PRINT "IF X=1 GOTO 100": PRINT "IF X=2 GOTO 200": PRINT "IF X=3 GOTO 300, ETC.": PRINT 
  249. 249  GOSUB 5: GOTO 26
  250. 250  ON U +1 GOTO 251,256,261,267,271,281,289,297,303,340
  251. 251  PRINT "THIS IS USED TO BRANCH TO ONE'S OWN     ROUTINE TO AVOID STANDARD ERROR MESSAGESAND AVOIDING A NECESSARY HALT IN THE    RUNNING OF A PROGRAM. A LINENUMBER      FOLLOWS THIS STATEMENT."
  252. 252  PRINT : PRINT "THIS STATEMENT CAN ONLY BE USED IN      PROGRAMS, I.E. WITH A LINE NUMBER."
  253. 253  PRINT : PRINT 
  254. 254  PRINT "SEE ALSO ";: INVERSE : PRINT "RESUME";: NORMAL : PRINT "."
  255. 255  GOSUB 5: GOTO 26
  256. 256  PRINT "RETURNS THE CONTENTS, IN DECIMAL, OF THEBYTE OF THE SPECIFIED DECIMAL ADDRESS."
  257. 257  PRINT : PRINT "THIS COMMAND ENABLES US TO EXAMINE THE  CONTENTS OF ANY MEMORY LOCATION. THE    RESULT WILL BE A DECIMAL NUMBER IN THE  RANGE 0-255, E.G.": PRINT 
  258. 258  PRINT "PRINT PEEK(33)": PRINT : PRINT "WILL NORMALLY OUTPUT:": PRINT : PRINT  PEEK(33)
  259. 259  PRINT : PRINT "THIS IS THE CONTENTS OF THE MEMORY      LOCATION FOR THE WIDTH OF THE TEXT      'WINDOW' WHICH IS NORMALLY THE FULL     WIDTH, UNLESS CHANGED."
  260. 260  GOSUB 5: GOTO 26
  261. 261  PRINT "STORES THE BINARY EQUIVALENT OF THE     SECOND ARGUMENT 'Y' (IN RANGE 0-255)    INTO THE MEMORY LOCATION WHOSE DECIMAL  ADDRESS IS GIVEN BY THE FIRST ARGUMENT."
  262. 262  PRINT : PRINT "THIS COMMAND ENABLES US TO PUT A DESIREDVALUE IN THE ABOVE RANGE INTO A MEMORY  LOCATION AVAILABLE TO US.": PRINT 
  263. 263  PRINT "E.G.": PRINT 
  264. 264  PRINT "POKE 33,30": PRINT 
  265. 265  PRINT "THIS EXAMPLE PUTS THE VALUE 30 INTO THE STORE LOCATION RESERVED FOR THE WIDTH OFTHE TEXT WINDOW. THE NORMAL VALUE FOR   THIS IS 40. THE EXAMPLE HERE SETS THE   WIDTH TO 30."
  266. 266  GOSUB 5: GOTO 26
  267. 267  PRINT "RETURNS THE CURRENT HORIZONTAL POSITION OF THE CURSOR (0-39)."
  268. 268  PRINT : PRINT "THIS COMMAND MAY BE USED EITHER WITH OR WITHOUT LINENUMBERS.": PRINT 
  269. 269  PRINT "THIS COMMAND IS AVAILABLE IN APPLESOFT, BUT NOT IN ALL VERSIONS OF BASIC. IN    SOME VERSIONS IT MAY HAVE A DIFFERENT   MEANING."
  270. 270  GOSUB 5: GOTO 26
  271. 271  HOME : PRINT : INVERSE : PRINT "PRINT";: NORMAL : PRINT "    EXAMPLE:": PRINT 
  272. 272  INVERSE : PRINT "PRINT";: NORMAL : PRINT " " CHR$(34);"MESSAGE"; CHR$(34);",X;A*(B-C)^D": PRINT 
  273. 273  PRINT 
  274. 274  PRINT "MAY BE USED TO PRINT BLANK LINES (ON ITSOWN), MESSAGES (IN DOUBLE QUOTES),SINGLEVARIABLES, AND EXPRESSIONS, OR ANY      COMBINATION OF THESE."
  275. 275  PRINT 
  276. 276  PRINT "DELIMITERS/TERMINATORS"
  277. 277  PRINT "----------------------"
  278. 278  PRINT "COMMA => NEW FIELD (16,16,8 ON APPLE)": PRINT "SEMI-COLON => NO SPACES TO BE LEFT": PRINT "NO TERMINATOR (I.E.CARR.RET.)=>NEW LINE"
  279. 279  PRINT : PRINT "N.B.";: INVERSE : PRINT "PRINT TAB(X);";: NORMAL : PRINT " MAY BE USED FOR MORE  PRECISE LAYOUT, WHERE 'X' MAY BE PRE-   DEFINED IN RANGE 1-40."
  280. 280  GOSUB 5: GOTO 26
  281. 281  REM 
  282. 282  VTAB 4
  283. 283  PRINT "ASSIGNS THE VARIABLES LISTED (SEPARATED BY COMMAS - NONE AFTER LAST), WITH      SUCCESSIVE VALUES FROM THE DATA ITEMS   LISTED IN ";: INVERSE : PRINT "DATA";: NORMAL : PRINT " STATEMENTS."
  284. 284  INVERSE : PRINT "EXAMPLE": NORMAL 
  285. 285  PRINT "10 READ A,B2,C$,D3$,E6$": PRINT "20 DATA 234,678,JOHN," CHR$(34)"BROWN,JOHN" CHR$(34)"," CHR$(34)"DATA" CHR$(34)
  286. 286  PRINT "NOTE:- THIS STATEMENT MAY BE USED IF THEDATA ITEMS ARE KNOWN WHEN THE PROGRAM ISBEING WRITTEN. A MIXTURE OF VARIABLE    TYPES IS ALLOWED, BUT THERE MUST BE A   DATA ITEM TO MATCH EVERY VARIABLE BEING READ, AND THEY MUST BE IN THE ";
  287. 287  PRINT "CORRECT   ORDER. STRING DATA ITEMS WHICH INCLUDE  COMMAS, COLONS, OR KEYWORDS, SHOULD BE  IN DOUBLE QUOTES. DATA LINES MAY BE     ANYWHERE IN A PROGRAM, BUT ARE TAKEN IN ORDER OF APPEARANCE. (SEE ALSO ";: INVERSE : PRINT "RESTORE";: NORMAL 
  288. 288  PRINT ").": GOSUB 5: GOTO 26
  289. 289  VTAB 4: PRINT "ANY TEXT MAY FOLLOW THIS STATEMENT, NO  QUOTES NEEDED. IT ALLOWS TEXT TO BE     INSERTED INTO A PROGRAM AS REMARKS.THE  RUNNING OF THE PROGRAM IS NOT AFFECTED. IF USED IN A MULTI-STATEMENT LINE IT"
  290. 290  PRINT "MUST BE THE LAST STATEMENT IN THE LINE.": INVERSE : PRINT "REM";: NORMAL : PRINT " IS USED TO HELP ANY PROGRAMMER TO   UNDERSTAND A PROGRAM LISTING."
  291. 291  PRINT : INVERSE : PRINT "EXAMPLES": NORMAL 
  292. 292  PRINT "10 REM WAGES PROGRAM": PRINT "100 REM SORT NAMES ALPHABETICALLY": PRINT "300 REM INITIALISE COUNTER:LET C=0": PRINT 
  293. 293  FLASH : PRINT "WARNING";: NORMAL 
  294. 294  PRINT ":-ANY TEXT (INCLUDING STATEMENTS)AFTER ";: INVERSE : PRINT "REM";: NORMAL 
  295. 295  PRINT " ON THE SAME STATEMENT LINE    WILL MERELY BE LISTED. THEY WILL NEVER  BE EXECUTED. THE STATEMENT 'LET C=0' IN LINE 300 ABOVE WILL NOT BE EXECUTED."
  296. 296  GOSUB 5: GOTO 26
  297. 297  VTAB 4: PRINT "USED IN CONJUNCTION WITH ";: INVERSE : PRINT "READ/DATA": NORMAL : PRINT "STATEMENTS ONLY. IT RESETS THE DATA LISTPOINTER TO THE FIRST DATA ITEM IN THE   LIST."
  298. 298  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL 
  299. 299  PRINT "10 READ A,B,C": PRINT "20 DATA 5,6,7": PRINT "200 RESTORE": PRINT "210 READ X,Y,Z": PRINT 
  300. 300  PRINT "EXPLANATION:- AFTER LINE 10 THE DATA    'POINTER' WILL BE POINTING TO THE END OFTHE LIST. LINE 200 WILL RESET THE       POINTER TO THE FIRST DATA ITEM IN THE   LIST, I.E. '5'. IT IS NOW POSSIBLE TO   RE-READ THE DATA LIST FROM THE ";
  301. 301  PRINT "START.   X,Y, AND Z WILL NOW BE ASSIGNED THE     VALUES 5,6, AND 7."
  302. 302  GOSUB 5: GOTO 26
  303. 303  PRINT "AT THE END OF AN ERROR-HANDLING ROUTINE (SEE ";: INVERSE : PRINT "ONERRGOTO";: NORMAL : PRINT ") CAUSES THE RESUMPTION OFTHE PROGRAM AT THE STATEMENT IN WHICH   THE ERROR OCCURRED."
  304. 304  PRINT : PRINT "THIS COMMAND MAY ONLY BE USED WITHIN A  PROGRAM, I.E. WITH A LINE NUMBER."
  305. 305  GOSUB 5: GOTO 26
  306. 306  ON U +1 GOTO 307,312,317,321,326,329,332,335,339,342
  307. 307  PRINT "EXAMPLE:": PRINT "-------": PRINT 
  308. 308  INVERSE : PRINT "RIGHT$(A$,X)": NORMAL : PRINT 
  309. 309  PRINT "RETURNS THE 'X' RIGHTMOST CHARACTERS IN THE STRING A$."
  310. 310  PRINT : PRINT "IF A$=" CHR$(34)"MARY" CHR$(34)", AND IF X=2, THEN THE      LETTERS 'RY' WILL BE OUTPUT."
  311. 311  GOSUB 5: GOTO 26
  312. 312  PRINT "RETURNS A REAL NUMBER IN THE RANGE      0-0.999999999"
  313. 313  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL : PRINT "PRINT RND(1) MIGHT YIELD: " RND(1): PRINT 
  314. 314  PRINT "WE CAN OF COURSE MANIPULATE THIS        FUNCTION TO OBTAIN A RANDOM NO. WITHIN  ANY PRESCRIBED INTEGER LIMITS BY USING  THE 'INT' FUNCTION AND MULTIPLICATION.": PRINT 
  315. 315  PRINT "METHOD:-MULTIPLY THE RANDOM NO. BY THE  INCLUSIVE RANGE, ADD THE LOWER LIMIT,   AND TRUNCATE.": PRINT : PRINT "E.G. PRINT INT(RND(1)*(B-A+1)+A) WILL   PRODUCE A RANDOM NUMBER BETWEEN 'A' AND 'B'."
  316. 316  GOSUB 5: GOTO 26
  317. 317  INVERSE : PRINT "RUN";: NORMAL : PRINT  CHR$(91);"LINENUMBER]": PRINT 
  318. 318  PRINT "CLEARS ALL VARIABLES AND POINTERS AND   BEGINS EXECUTION AT THE INDICATED LINE, IF GIVEN, OTHERWISE IT BEGINS AT THE    LOWEST LINE NUMBER."
  319. 319  PRINT : PRINT : INVERSE : PRINT "RUN";: NORMAL : PRINT "<PROGRAM NAME>: LOADS AND RUNS THE   PROGRAM NAMED FROM DISK. (N.B. NO QUOTESAROUND PROGRAM NAME)."
  320. 320  GOSUB 5: GOTO 26
  321. 321  INVERSE : PRINT "SAVE";: NORMAL : PRINT "<PROGRAM NAME> SAVES PROGRAM        CURRENTLY IN MEMORY ONTO DISK.": PRINT 
  322. 322  PRINT "N.B.NO QUOTES AROUND PROGRAM NAME ON    APPLE.": PRINT : PRINT 
  323. 323  FLASH : PRINT "WARNING": NORMAL : PRINT : PRINT "THIS COMMAND WILL OVERWRITE ANY PROGRAM WITH THE SAME NAME (UNLESS LOCKED).": PRINT : PRINT "IF USED WITHOUT FILENAME SAVING ON      CASSETTE TAPE IS ASSUMED. IF NO CASSETTERECORDER LINKED THEN APPLE WILL HANG-UP.
  324. 324  PRINT "TO RECOVER PRESS 'RESET'."
  325. 325  GOSUB 5: GOTO 26
  326. 326  PRINT "RETURNS -1 IF X IS NEGATIVE                      0 IF X IS ZERO                         +1 IF X IS POSITIVE"
  327. 327  PRINT : PRINT : INVERSE : PRINT "EXAMPLES": NORMAL : PRINT : PRINT  TAB( 10);"SGN(-4) = -1": PRINT  TAB( 10);"SGN(0) = 0": PRINT  TAB( 10);"SGN(4) = 1"
  328. 328  GOSUB 5: GOTO 26
  329. 329  PRINT "RETURNS THE SINE OF THE ARGUMENT        (RADIANS)."
  330. 330  PRINT : PRINT "E.G.": PRINT : PRINT "PRINT SIN(1)": PRINT : PRINT  SIN(1)
  331. 331  GOSUB 5: GOTO 26
  332. 332  PRINT "USED IN A ";: INVERSE : PRINT "PRINT";: NORMAL : PRINT " STATEMENT, INTRODUCES X SPACES BETWEEN THE LAST ITEM PRINTED ANDTHE NEXT ITEM (PROVIDED SEMI-COLONS USEDBEFORE AND AFTER)."
  333. 333  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL : PRINT : PRINT "PRINT " CHR$(34)"ABC" CHR$(34)";SPC(5);" CHR$(34)"DEF" CHR$(34): PRINT "ABC" SPC( 5)"DEF"
  334. 334  GOSUB 5: GOTO 26
  335. 335  PRINT "SETS SPEED OF OUTPUT TO SCREEN OR OTHER INPUT/OUTPUT DEVICES. THE SLOWEST RATE  IS 0, AND THE FASTEST IS 255 (DEFAULT   SPEED)."
  336. 336  PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS."
  337. 337  PRINT : PRINT "SPEED=0": PRINT : SPEED= 0: PRINT "SPEED IS NOW AT SLOWEST. ONCE SPEED IS  CHANGED IT WILL STAY AT THE NEW SPEED   UNTIL RESET.": PRINT : PRINT "SPEED=255": SPEED= 255: PRINT : PRINT "SPEED IS NOW BACK TO NORMAL"
  338. 338  GOSUB 5: GOTO 26
  339. 339  PRINT "RETURNS THE SQUARE ROOT OF X."
  340. 340  PRINT : PRINT "PRINT SQR(9) YIELDS 3"
  341. 341  GOSUB 5: GOTO 26
  342. 342  PRINT "CAUSES A PROGRAM TO CEASE EXECUTION AND DISPLAY THE LINE NUMBER AT WHICH IT     STOPPED. CONTROL IS PASSED TO THE USER. THE PROGRAM MAY BE CONTINUED (IF        POSSIBLE) USING ";: INVERSE : PRINT "CONT";: NORMAL : PRINT "."
  343. 343  GOSUB 5: GOTO 26
  344. 344  ON U +1 GOTO 345,353,359,362,365,367,372
  345. 345  PRINT "RETURNS A STRING THAT REPRESENTS THE    VALUE OF THE NUMERIC VARIABLE 'A'."
  346. 346  PRINT : PRINT "E.G.": PRINT 
  347. 347  PRINT "IF THE NUMERIC REAL VARIABLE 'A' HAS A  VALUE OF 123, I.E. ONE HUNDRED AND      TWENTY THREE, THE STATEMENT": PRINT 
  348. 348  INVERSE : PRINT "LET A$=STR$(A)": NORMAL : PRINT 
  349. 349  PRINT : PRINT "WILL CREATE A STRING OF THE CHARACTERS  REPRESENTING THAT VALUE, I.E. " CHR$(34)"123" CHR$(34)", IN A$.";
  350. 350  PRINT " THIS STRING CANNOT ITSELF BE        OPERATED UPON MATHEMATICALLY."
  351. 351  PRINT : PRINT "SEE THE FUNCTION ";: INVERSE : PRINT "VAL";: NORMAL : PRINT " FOR THE REVERSE."
  352. 352  GOSUB 5: GOTO 26
  353. 353  PRINT "MUST BE USED IN A ";: INVERSE : PRINT "PRINT";: NORMAL : PRINT " STATEMENT, AND  BE FOLLOWED IMMEDIATELY BY A SEMI-COLON.";
  354. 354  PRINT "THE NEXT ITEM OF OUTPUT MAY BE PRINTED  IN ANY COLUMN ACROSS THE SCREEN,        DEPENDING ON THE VALUE OF 'X'. THE      COLUMNS ARE NUMBERED 1-40, COUNTING FROMTHE LEFT MARGIN.";
  355. 355  PRINT " IF THE COLUMN HAS BEEN PASSED THE NEXT AVAILABLE IS USED."
  356. 356  PRINT : INVERSE : PRINT "EXAMPLE": NORMAL : PRINT : PRINT "PRINT TAB(10);" CHR$(34)"ABC" CHR$(34)";TAB(25);" CHR$(34)"DEF" CHR$(34): PRINT  TAB( 10);"ABC"; TAB( 25);"DEF"
  357. 357  PRINT : PRINT : PRINT "SEE ALSO ";: INVERSE : PRINT "HTAB": NORMAL 
  358. 358  GOSUB 5: GOTO 26
  359. 359  PRINT "RETURNS THE TANGENT OF 'X' (RADIANS)."
  360. 360  PRINT : PRINT "E.G.": PRINT : PRINT "PRINT TAN(1)": PRINT : PRINT  TAN(1)
  361. 361  GOSUB 5: GOTO 26
  362. 362  PRINT "SETS SCREEN TO THE USUAL NON-GRAPHICS   MODE, AND RESETS THE TEXT WINDOW TO THE FULL SCREEN, I.E. IF APPLE WAS IN       GRAPHICS MODE, OR IF THE SCREEN WAS     LOCKED IT WILL NOW BE IN NORMAL TEXT    MODE.": PRINT 
  363. 363  PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTA LINENUMBER."
  364. 364  GOSUB 5: GOTO 26
  365. 365  PRINT "CAUSES LINE NUMBER OF EACH STATEMENT TO BE DISPLAYED ON SCREEN AS IT IS OBEYED  (EXECUTED). THIS STATEMENT MAY ONLY BE  TURNED OFF BY ";: INVERSE : PRINT "NOTRACE";: NORMAL : PRINT "."
  366. 366  GOSUB 5: GOTO 26
  367. 367  PRINT "ATTEMPTS TO INTERPRET A STRING, UP TO   THE FIRST NON-NUMERIC CHARACTER, AS A   NUMBER. IF NO NUMBER OCCURS BEFORE THE  FIRST NON-NUMERIC CHARACTER '0' IS      RETURNED, OTHERWISE THE NUMERIC"
  368. 368  PRINT "EQUIVALENT OF THE STRING CHARACTERS IS  RETURNED."
  369. 369  PRINT : INVERSE : PRINT "EXAMPLES": NORMAL : PRINT : PRINT "PRINT VAL("I$"123"I$") YIELDS: 123": PRINT : PRINT "PRINT VAL("I$"6 DOLLARS"I$") YIELDS: 6": PRINT : PRINT "PRINT VAL("I$"$100"I$") YIELDS: 0": PRINT : PRINT 
  370. 370  PRINT "SEE ";: INVERSE : PRINT "STR$(A)";: NORMAL : PRINT " FOR REVERSE."
  371. 371  GOSUB 5: GOTO 26
  372. 372  PRINT "MOVES CURSOR TO VERTICAL LINE (ROW) ON  SCREEN SPECIFIED BY THE ARGUMENT IN THE RANGE 1-24."
  373. 373  PRINT : PRINT "THIS COMMAND MAY BE USED WITH OR WITHOUTLINENUMBERS."
  374. 374  GOSUB 5: GOTO 26
  375. 375  TEXT : PRINT "FINISHED !!": END 
  376. 376  RESUME 
  377. 377  TEXT : HOME : NORMAL : VTAB 10
  378. 378  INVERSE : PRINT "PLEASE WAIT !!": NORMAL : PRINT : PRINT 
  379. 379  INVERSE : PRINT "RE-LOADING MAIN MENU PROGRAM !!": NORMAL 
  380. 380  POKE 1010,P0: POKE 1011,P1: POKE 1012,P2
  381. 381  PRINT D$"RUNSTARTUP"